﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Tipler.Siniflar;
using Tipler.DataSetler;
using Tipler.OzellikTipleri;
using Tipler.Enumlar;
using System.Web.UI.HtmlControls;
using System.Configuration;
using IKYSWeb.Siniflar;
using IsKurallari.Yetki;

namespace IKYSWeb.Yetki
{
    [YetkiAttribute(EnumSayfaYetkileri.Herkes_Yetkili)]
    public partial class SifreDegistir : BasePage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (AktifKullanici.LdapIleGirisYapti)
                {
                    MesajGoster(this, "Sisteme bilgisayarınızı açtığınız şifreyle giriş yaptığınız için şifre değiştirme işlemi ikys üzerinden yapılamaz", MesajTipiEnum.Bilgi);
                    btnTamam.Enabled = false;
                    return;
                }


                if (Convert.ToBoolean(Request.QueryString["SifreDegisimiZorunlu"]))
                    MesajGoster(this, "Sisteme ilk kez girdiğiniz için şifre değişimi zorunludur, lütfen güvenli kullanım için yüksek güvenlikli bir şifre seçiniz", MesajTipiEnum.Bilgi);


                txtKullaniciAdi.Text = AktifKullanici.KullaniciBilgisiRow["ADI"].ToString() + " " + AktifKullanici.KullaniciBilgisiRow["SOYADI"].ToString() + " " + AktifKullanici.KullaniciBilgisiRow.KullaniciAdi;


                txtSifreEski.Attributes.Add("autocomplete", "off");
                txtSifreYeni.Attributes.Add("autocomplete", "off");
                txtSifreYeni2.Attributes.Add("autocomplete", "off");
                Form.DefaultButton = btnTamam.UniqueID;
            }
        }

        protected void btnTamam_Click(object sender, EventArgs e)
        {
            YetkiIsKurali oYetki = new YetkiIsKurali();

            byte[] Sifre = MD5Sifreleme(txtSifreEski.Text);
            bool SifreDogru = true;

            if (Sifre.Length != AktifKullanici.KullaniciBilgisiRow.Sifre.Length)
                SifreDogru = false;
            else
            {
                for (int i = 0; i < AktifKullanici.KullaniciBilgisiRow.Sifre.Length; i++)
                {
                    if (Sifre[i] != AktifKullanici.KullaniciBilgisiRow.Sifre[i])
                    {
                        SifreDogru = false;
                        break;
                    }
                }
            }

            if (SifreDogru)
            {
                FonksiyonSonuc<KullaniciDataSet> oSonuc = oYetki.KullaniciKaydet(AktifKullanici.KullaniciBilgisi, null, null);

                if (!oSonuc.HataVarMi)
                {
                    AktifKullanici.KullaniciBilgisi.AcceptChanges();
                    lblError.Text = "";
                    MesajGoster(Page, "Şifreniz başarı ile değiştirilmiştir.Ana sayfaya dönmek için <a href=\"" + VirtualPathUtility.ToAbsolute("~/Default.aspx") + "\">tıklaynız.</a>", MesajTipiEnum.Bilgi);
                }
                else
                {
                    AktifKullanici.KullaniciBilgisi.RejectChanges();
                    lblError.Text = "Şifre değiştirilirken hata oluştu!!";
                    MesajGoster(Page, oSonuc.Hata, MesajTipiEnum.Hata);
                    return;
                }
            }
            else
            {
                lblError.Text = "Geçerli şifreniz yanlış. Lütfen doğru şifre ile tekrar deneyiniz!!";
            }


        }
    }
}